<?php
/**
 * 任务小应用
 * (c)2010-2099
 */

!defined('Q_PATH') && exit;

class IndexController extends InitController{

	public function index(){
		$nTotalRecord=Model::F_('task')->all()->getCounts();

		// 前台日志列表分页数量
		$nEverynum=5;

		// 使用分页类
		$oPage=Page::RUN($nTotalRecord,$nEverynum);
		$sPageNavbar=$oPage->P(array('id'=>'pagination'));

		// 获取数据列表
		$arrTaskLists=Model::F_('task','@A')
			->setColumns('A.*')
			->join(Q::C('DB_PREFIX').'user AS B','B.user_name','A.user_id=B.user_id')
			->order('A.task_id DESC')
			->limit($oPage->S(),$oPage->N())
			->getAll();

		$this->assign('arrTaskLists',$arrTaskLists);
		$this->assign('sPageNavbar',$sPageNavbar);
		$this->display();
	}

	public function add(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$this->display();
	}

	public function add_task(){
		$oUser=UserModel::F('user_id=?',$GLOBALS['___login___']['user_id'])->query();

		// 通过用户对象创建任务
		$oTask=$oUser->createTask(trim(Q::G('task_subject','P')),trim(Q::G('task_description','P')));

		// 保存并重定向浏览器
		$oTask->save();
		if($oTask->isError()){
			$this->E($oTask->getErrorMessage());
		}else{
			$this->assign('__JumpUrl__',Q::U('index/index'));
			$this->S('添加任务成功');
		}
	}

	public function update_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(Q::G('id'));
		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能编辑别人的任务');
				}else{
					if($this->isPost()){
						$oTask->save('update');
						if($oTask->isError()){
							$this->E($oTask->getErrorMessage());
						}
						$this->S('任务更新成功');
					}
					
					$this->assign('oTask',$oTask);
					$this->display();
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

	public function do_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(Q::G('id'));

		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能做别人的任务');
				}else{
					if($oTask['task_is_completed']==1){
						$this->E('任务已经完成了，你不需要重复做任务！');
					}

					if($this->isPost()){
						$oTask->save('update');
						if($oTask->isError()){
							$this->E($oTask->getErrorMessage());
						}

						$this->assign('__JumpUrl__',Q::U('index/index'));
						$this->S('任务已完成');
					}

					$this->assign('oTask',$oTask);
					$this->display();
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

	public function delete_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(Q::G('id'));
		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能删除别人的任务');
				}else{
					$oModelMeta=TaskModel::M();

					// 执行删除
					$oModelMeta->deleteWhere('task_id=?',$nTaskId);

					// 开始模型Meta中的错误，如果没有那么路过
					if($oModelMeta->isError()){
						$this->E($oModelMeta->getErrorMessage());
					}else{
						$this->S('删除任务成功');
					}
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

}
